Skip to content

feat(launch): launch candidate LC-6 — README + landing + feedback widget + v1.0.0 prep#69

Merged
KevinBigham merged 7 commits into
mainfrom
codex/launch-candidate-landing-feedback-lc6
Apr 28, 2026
Merged

feat(launch): launch candidate LC-6 — README + landing + feedback widget + v1.0.0 prep#69
KevinBigham merged 7 commits into
mainfrom
codex/launch-candidate-landing-feedback-lc6

Conversation

@KevinBigham
Copy link
Copy Markdown
Owner

Audit Summary

Audit file: apps/web/docs/lc6-launch-prep-audit.md

  • Baseline verified at origin/main cd1f9753a9fd530deaf0544720430186850b9918, post-LC-3 #68 and post-LC-5 #67.
  • Landing route is the save hub: apps/web/src/features/setup/routes/SetupPage.tsx, wired from / through apps/web/src/app/routes/index.tsx.
  • README was pre-v1 internal documentation with no screenshots or clear player/contributor split.
  • CHANGELOG.md did not exist at repo root.
  • No feedback path or Supabase configuration existed; LC-6 uses mailto fallback only.
  • Version strings found pre-change: root package.json 0.0.1, apps/web/package.json 0.0.1, Settings About v0.0.1, and pre-v1 apps/web/index.html meta.
  • Test oracle: SetupPage.test.tsx, SettingsPage.test.tsx, app/routes/index.test.tsx, App.test.tsx, plus new feedback RTL tests.

Slice-By-Slice Progress Ledger

  • Slice 1, baseline audit: complete in 88dd6dd.
  • Slice 2, screenshots: complete in 907b771; six screenshots total 364 KB, under the 1.5 MB budget.
  • Slice 3, README rewrite: complete in eff3fa0; README is 69 lines.
  • Slice 4, changelog: complete in 7f28a88; changelog is 68 lines.
  • Slice 5, feedback widget: complete in d5471b8; Settings entry, modal, validation, mailto fallback, success auto-dismiss.
  • Slice 6, landing copy + v1 metadata: complete in b15945a; save hub copy, package versions, Settings version, OG meta.
  • Slice 7, final verification: complete in f448a78.

Self-Critique Gate Answers

  1. Schema bump? None. CURRENT_GAME_SNAPSHOT_VERSION = 33.
  2. RNG safety? No sim code touched. Feedback uses no Math.random() or Date.now().
  3. Save compatibility? No save shape changes, no migrations, no fixtures needed.
  4. Tests run? Full gate listed below.
  5. Files outside scope? apps/web/docs/lc6-launch-prep-audit.md is required by the LC-6 slice plan. Root package.json was bumped to 1.0.0 because the audit identified it as a version string and acceptance requires version consistency. No sim-core, workers, contracts, or build config files were edited.
  6. Version strings consistent? Yes: root package, web package, Settings About, title/meta all show 1.0.0 / v1.0.0.
  7. Feedback privacy? The form sends only type, report body, and optional contact when the user types it. No user agent, current URL, automatic email, analytics, or device fingerprint is included.

Test Results

  • cd packages/sim-core && npx pnpm typecheck && npx vitest run passed: 137 files, 1608 tests.
  • cd packages/contracts && npx pnpm typecheck && npx vitest run passed: 1 file, 18 tests.
  • cd apps/web && npx pnpm typecheck && npx vitest run && npx vite build passed: 98 files, 621 tests, production build emitted dist/.
  • cd apps/web && npx vitest run src/build/bundleBudget.test.ts passed: 1 file, 1 test.
  • rg "CURRENT_GAME_SNAPSHOT_VERSION" packages/contracts/src/schemas/save.ts confirms CURRENT_GAME_SNAPSHOT_VERSION = 33.

Existing jsdom/Recharts and mocked-worker stderr warnings still appear in web tests, but all commands exit 0.

Files Touched

  • README.md
  • CHANGELOG.md
  • package.json
  • apps/web/docs/lc6-launch-prep-audit.md
  • apps/web/index.html
  • apps/web/package.json
  • apps/web/public/screenshots/career-retrospective.jpg
  • apps/web/public/screenshots/dashboard-desktop.jpg
  • apps/web/public/screenshots/dashboard-mobile.jpg
  • apps/web/public/screenshots/landing-save-hub.jpg
  • apps/web/public/screenshots/pennant-race-board.jpg
  • apps/web/public/screenshots/season-story-reel.jpg
  • apps/web/src/features/feedback/FeedbackButton.tsx
  • apps/web/src/features/feedback/FeedbackForm.tsx
  • apps/web/src/features/feedback/feedbackSubmit.ts
  • apps/web/src/features/feedback/index.ts
  • apps/web/src/features/feedback/__tests__/FeedbackForm.test.tsx
  • apps/web/src/features/settings/routes/SettingsPage.tsx
  • apps/web/src/features/settings/routes/SettingsPage.test.tsx
  • apps/web/src/features/setup/routes/SetupPage.tsx
  • apps/web/src/features/setup/routes/SetupPage.test.tsx

Screenshots

Note: the Season Story Reel screenshot is a styled reference using existing fixture copy because the short generated browser save did not surface the modal trigger, matching the LC-3 audit caveat.

v1.0.0 Readiness Checklist

  • README rewritten, under 200 lines, screenshot links resolve.
  • CHANGELOG created with v1.0.0 launch narrative.
  • Feedback widget ships in Settings with mailto fallback.
  • Version strings updated to 1.0.0 / v1.0.0.
  • Screenshots committed under 1.5 MB total.
  • Schema remains v33.
  • Bundle budget test passes.
  • Full verification gate passes.

Notes For Kevin / Claude Code

  • Supabase is not configured in this repo, so this PR intentionally does not add a migration or backend dependency.
  • .codex/MBD/* durable memory was not edited because LC-6's edit radius explicitly said not to touch .codex/; Claude/Ops should append the final launch note after merge if needed.
  • Review focus: feedback mailto address, landing copy tone, and whether root package.json version bump should stay with the web package bump for the v1 tag.

@KevinBigham KevinBigham marked this pull request as ready for review April 28, 2026 14:30
@KevinBigham KevinBigham merged commit 66109e1 into main Apr 28, 2026
1 check passed
@KevinBigham KevinBigham deleted the codex/launch-candidate-landing-feedback-lc6 branch April 28, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant